The present invention generally relates to the field of computer networking. More particularly, the present invention relates to the field of internetwork packet exchange (IPX) control data.
Computers have become an integral tool used in a wide variety of different applications, such as in finance and commercial transactions, computer-aided design and manufacturing, health care, telecommunication, education, etc. Computers are finding new applications as a result of advances in hardware technology and rapid development in software technology. Furthermore, a computer system""s functionality is dramatically enhanced by coupling stand-alone computers together to form a computer network. In a computer network, users may readily exchange files, share information stored on a common database, pool resources, and communicate via electronic mail (e-mail) and via video teleconferencing.
One popular type of computer network is known as a local area network (LAN). LANs connect multiple computer systems together such that the users of the computer systems can access the same information and share data. Typically, in order to be connected to a LAN, a general purpose computer system requires an expansion board generally known as a network interface card (NIC). Essentially, the NIC works with the operating system and central processing unit (CPU) of the host computer system to control the flow of information over the LAN. Some NICs may also be used to connect a computer system to a wide area network (WAN) and/or the Internet.
Contemporary networks such as a LAN or a WAN typically include one or more server computer systems connected together with multiple client computer systems. Furthermore, a server computer system is typically coupled to the network using more than one NIC. As such, multiple NICs of the server computer system increase its total available bandwidth capacity for transmitting and sending data packets. Moreover, multiple NICs also provide resiliency and redundancy if one of the server""s NICs fails.
It is desirable to balance the transmission traffic over each NIC when multiple NICs are used, which is typically referred to as load balancing, so that one NIC does not handle too much traffic and become a bottleneck. The use of load balancing allows the spare capacity provided by the multiple NICs to be effectively utilized. It is not necessary to hold a NIC in reserve in case one of the NICs fails. Instead, all NICs can be used, thereby increasing the overall performance of the server computer system and hence the network.
With reference to FIG. 1, which is a block diagram of a prior art LAN 106 which communicatively connects an internetwork packet exchange (IPX) based server computer system 102 to a client computer system 104. It is appreciated that IPX server computer system 102 is connected to LAN 106 using four NICs while client computer system 104 is connected to LAN 106 using a single NIC. It should be appreciated that IPX server computer system 102 may have any number of NICs, according to its bus architecture and available slots. Specifically, IPX server computer system 102 utilizes its four NICs to transmit different types of IPX data packets to client computer system 104 in a round-robin manner in order to perform transmission load balancing. In the typical round-robin approach, a first IPX data packet is sent out by IPX server 102 using a first NIC, a second IPX data packet using a second NIC, and so on. When all NICs have been used to send out an IPX data packet, the sequence returns to the first. NIC and the cycle is repeated. In this manner, IPX server 102 increases its bandwidth for transmitting IPX data, packets to client 104 over LAN 106.
It should be appreciated that there are disadvantages associated with having IPX server 102 performing the typical round-robin approach within some networks. One of the disadvantages is that during certain circumstances, client 104 could potentially get confused as to which IPX layer address of IPX server 102 to send IPX data packets to. Specifically, when IPX server 102 transmits IPX data packets in the typical round-robin approach, it utilizes several NICs each having a different IPX layer address. As such, client 104 can receive several IPX data packets from IPX server 102, each having a different IPX layer address. Consequently, client 104 may begin to send IPX data packets to one of the NICs of IPX server 102 which does not support reception of IPX data packets. Therefore, communication between IPX server 102 and client 104 is unsuccessful because of confusion within client 104.
Accordingly, a need exists for a method and system for providing true IPX load balancing in such a way that does not introduce the possibility of confusion within the network.
One embodiment of the present invention provides a method and system for providing true IPX load balancing that does not introduce the possibility of confusion within the network. Specifically, one embodiment of the present invention operates within a server computer system adapted with a plurality of network interface cards (NICs) coupled thereto. This embodiment includes a method for directing transmission of an internetwork packet exchange (IPX) control packet. The method includes the step of determining a primary NIC from a plurality of NICs of the server computer system. Additionally, the method includes the step of recognizing an IPX control packet before the IPX control packet is transmitted over a network. Furthermore, the method includes the step of directing the IPX control packet to be transmitted over the network by the primary NIC.
In another embodiment, the present invention includes a computer readable medium having computer readable code embodied therein for causing a computer to perform particular steps. Specifically, one of the steps is determining a primary NIC from a plurality of NICs of a server computer system. Furthermore, another one of the steps is causing an IPX control packet of the server computer system to be transmitted over a network by the primary NIC which is coupled to the network.
In still another embodiment, the present invention operates within a computer system. This embodiment includes a method for directing transmission of an IPX control packet. The method includes the computer implemented step of determining a primary NIC from a plurality of NICs of a server computer system. Moreover, the method includes the computer implemented step of recognizing an IPX control packet before the IPX control packet is transmitted over a network. Additionally, the method includes the computer implemented step of directing the IPX control packet to be transmitted over the network by the primary NIC.
In another embodiment, the present invention includes a computer system which includes a processor which is coupled to an addressable data bus. The computer system also includes a computer readable memory coupled to communicate with the processor for performing a method for directing transmission of an IPX control packet. The method includes the step of determining a primary NIC from a plurality of NICs of a server computer system. Furthermore, the method includes the step of recognizing an IPX control packet before the IPX control packet is transmitted over a network. Additionally, the method includes the step of directing the IPX control packet to be transmitted over the network by the primary NIC.